package com.chenfan.mcn.model.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.chenfan.mcn.enums.ApprovalStatusEnum;
import com.chenfan.mcn.enums.ArchivingStatusEnum;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;

/**
 * @author tangwei
 * Date:     2021/1/26 14:46
 * Description: 收入合同补充协议
 */
@Data
public class ContractAgreementVO implements Serializable {

    private static final long serialVersionUID = 573373593630283304L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;


    /**
     * 收入合同补充协议号
     */
    private String agreementCode;

    /**
     * 收入合同表主键id
     */
    private Long incomeContractId;

    /**
     * 收入合同编号
     */
    private String incomeContractCode;

    /**
     *  审批状态:0_待提交、1_审批中、2_审批通过、3_审批拒绝、4_已撤回、5_已作废。
     */
    private Integer approvalStatus;

    /**
     * 单据状态名称
     */
    private String approvalStatusName;

    /**
     * 主要变更内容
     */
    private String changeContent;

    /**
     * 变更说明
     */
    private String changeDesc;

    /**
     * 原合同金额
     */
    private BigDecimal originalAmount;

    /**
     * 现合同金额
     */
    private BigDecimal currentAmount;

    /**
     * 变更理由
     */
    private String changeReason;

    /**
     * 上传合同
     */
    private String contactFile;

    /**
     * 关联执行单信息
     */
    List<BasicExcutionOrderVO> excutionOrders;

    /**
     * 审批节点id
     */
    private Long flowId;

    /**
     * 审批流程id
     */
    private String flowIds;

    /**
     * 审批节点名称
     */
    private String flowStatusName;

    /**
     * 原广告金额
     */
    private BigDecimal originalAdAmount;

    /**
     * 广告金额
     */
    private BigDecimal adAmount;

    /**
     * 归档状态(0-待盖章，1-待归档，2-已归档)
     */
    private Integer archivingStatus;

    /**
     * 归档编号
     */
    private String archivingCode;

    /**
     * 开票形式：0无需开票；1开票待定；2开票
     */
    private Integer invoiceForm;

    /**
     * 客户开票信息id
     */
    private Long customerBillingId;

    /**
     * 客户签约主体
     */
    private String customerSignSubject;

    /**
     * 开票类型：普票；专票
     */
    private String invoiceType;

    /**
     * 发票内容
     */
    private String invoiceContent;

    /**
     * 发票备注
     */
    private String invoiceRemark;

    /**
     * 归档状态名称
     */
    private String archivingStatusName;

    /**
     * 我司合同主体-变更前
     */
    private Long companyContractSubjectIdBefore;

    /**
     * 我司合同主体-变更前
     */
    private String beforeCompanyContractSubject;

    /**
     * 我司合同主体-变更后
     */
    private Long companyContractSubjectIdAfter;

    /**
     * 我司合同主体-变更后
     */
    private String afterCompanyContractSubject;

    /**
     * 变更前平台单号
     */
    private String platformOrderCodeBefore;

    /**
     * 变更后平台单号
     */
    private String platformOrderCodeAfter;


    public String getArchivingStatusName() {
        if (Objects.nonNull(getArchivingStatus())) {
            return ArchivingStatusEnum.getStatusName(getArchivingStatus());
        }
        return null;
    }

    public String getApprovalStatusName() {
        if (Objects.nonNull(getApprovalStatus())) {
            return ApprovalStatusEnum.getStatusName(getApprovalStatus());
        }
        return null;
    }
}